1. Field of the Invention
The invention relates to remote control of computer systems, including servers, and more particularly to a method and apparatus for passing video display information to a remote console.
2. Description of the Related Art
Advances in computing technology have caused a shift away from centralized mainframe computing to distributed computing using multiple personal computers (PCs) connected to a network. The network typically includes one or more server class personal computers to handle file, print and application services which are common to all the connected PCs. Therefore, the server becomes an important resource which the entire network depends upon.
Oftentimes, businesses may require more than one server. Networks may demand isolation for security reasons. Networks may be logically subdivided for performance or practical reasons. In particular, networks may be in different geographic locations. However, oftentimes the maintenance of the servers falls onto a single group or person, called a network administrator. In these cases where the server is in an inconvenient location, it is desirable for the network administrator to be able to monitor the health of the server without traveling to its location.
In the past, the network administrator operating from a local computer could telephonically connect into the operating system of a remote server to monitor its health using a conventional communications package such as PC Anywhere or Procomm. This method required a third communications computer to be attached to the network. Typically, a connection would first be established from the local computer to the communications computer attached to the network of the server. If the server was operating, the network administrator would be prompted for a login password to access network resources, including the server. If the server was down, only the personal computer could be accessed (providing that PC had its own modem). After the administrator logged into the network, a server console utility, such as RCONSOLE, could be executed to gain access to the server. Because many times the server would be down, this method had limited usefulness. Additionally, only limited information was provided, since the server would have to be operating before the server console utility would operate.
Network administrators also have used products such as Compaq""s Insight Manager. This software product is loaded by the operating system to allow users to connect to the operating system through a dedicated modem using (remote access service) RAS/PPP (point to point) protocols. This method also allows insight into the operating system, but only after the server is operating.
To help in this regard, an accessory known as Compaq Server Manager R was developed. This accessory was essentially a personal computer system board adapted to an add-in card. Server manager R included a processor, memory, modem and software to operate independently of the server to which it was installed. To monitor the server in a remote location, the network administrator at a local computer would dial into the server manager R board and establish a communications link. If a connection was established, the processor of server manager R would periodically acquire access to an expansion bus of the server to read the contents of the server video memory. The processor would then send the contents to the local computer via the communications link. A separate power supply was provided to the server manager R board so that it would operate even while the server was booting or powered down. Although the functionality provided by the server manager R board was desired, because it was essentially a second computer, the high cost of this solution limited its success.
The present invention disclosed and claimed herein includes a method and apparatus for monitoring video activity, reverse assembling the video transactions and transmitting the video transactions from a remote computer to a local computer. The local computer has a modem and conventional communications software for communicating with the remote computer of the preferred embodiment. The preferred embodiment includes hardware and software components, but other configurations are contemplated. An integrated remote console (IRC) device is provided in the remote computer for snooping video transactions passed on a bus from a processor to a video controller and for compressing the video transactions into an encoded format. Data and address comparison logic is provided in the IRC device to encode block move operations and fill operations (repetitive character strings). The data is encoded into a proprietary data stream which includes addressing information. A first in first out (FIFO) buffer accumulates the data until a threshold is reached and a system management interrupt (SMI) is indicated.
The processor of the remote computer enters a system management mode (SMM) when the SMI is indicated. This allows the processor to perform tasks independent of the operating system. The processor reads the data from the FIFO into a temporary buffer in SMM memory. Also in SMM memory, a copy of the video frame buffer of the local computer is maintained. The processor eventually provides the data to the local computer so maintenance of the local video frame buffer copy is possible. The processor compares the data in the temporary buffer to the local video frame buffer copy to determine what, if any, data should be sent to the local computer. Any previously provided data is disregarded as redundant.
Before the data is provided to the local computer, the data is translated into an American National Standards Institute (ANSI) character set. As the data is translated, the data in the temporary buffer is further examined to determine if the data can be represented by one of the ANSI command sequences, such as line scroll or clear screen. This provides further data compression which results in a more efficient system. Finally, the ANSI data is transmitted to the remote computer via a modem which is under control of the processor running in system management mode.
Inactivity timers are provided to detect periods of inactivity to the video memory and the video controller of the computer. If inactivity is detected, the FIFO and temporary buffer are flushed out to the local computer. This assures that data is timely displayed at the local computer.
Buffer overflow detection logic is provided to assure the integrity of the data. If an overflow condition is detected for the FIFO or temporary buffer, the local video frame buffer copy is replaced with a snapshot of the video buffer of the remote computer. This resynchronizes the video display of the local computer to the video display of the remote computer.